package applications.station;

import java.util.ArrayList;
import java.util.List;

import gestionColis.AucuneCasierDispoException;
import gestionColis.InfoColis;
import gestionColis.StationPOA;

/**
 * Station
 * @author simongrevin
 *
 */
public class StationImpl extends StationPOA {

	/**
	 * Casiers de la station
	 */
	List<Casier> casiers = new ArrayList<Casier>();
	
	/**
	 * Réservation d'un casier auprès de la station
	 */
	@Override
	public void reserverCasier(InfoColis infocolis)
			throws AucuneCasierDispoException {
		
		boolean reservationOk = false;
		
		for (Casier casier : casiers) {
			if (casier.isLibre()) {
				
				// création du colis à partir de l'infoColis
				Colis colis = new Colis();
				colis.recopieInfoColis(infocolis);
				
				// enregistrement du colis dans le casier libre
				casier.setColis(colis);
				
				// casier occupé
				casier.setLibre(false);
				
				// réservation ok
				reservationOk = true;
			}
		}
		
		// aucun casier disponible
		if (!reservationOk) {
			throw new AucuneCasierDispoException();
		}
		
	}

}
